

 function Tab(ele , type) {
    this.ele = get(ele) ;
    this.oBtns = this.ele.querySelectorAll('button') ;
    this.oPs = this.ele.querySelectorAll('p') ;

    // 确定事件类型
    this.type = type || 'click' ;

    this.init();
}

// Tab.prototype.init = function() {
//     for(let i = 0 ; i < this.oBtns.length ; i++) {
//         this.oBtns[i].addEventListener(this.type , () => {    // 事件处理函数会导致this指向发生改变
//             for(let j = 0 ; j < this.oBtns.length ; j++) {
//                 this.oBtns[j].classList.remove('active') ;
//                 this.oPs[j].classList.remove('show') ;
//             }
//             this.oBtns[i].classList.add('active');
//             this.oPs[i].classList.add('show');
//         })
//     }
// }


// Tab.prototype.init = function() {
//     for(let i = 0 ; i < this.oBtns.length ; i++) {
//         // 在this指向改变之前把它存起来
//         const _this = this ;
//         this.oBtns[i].addEventListener(this.type , function() {    // 事件处理函数会导致this指向发生改变
//             for(let j = 0 ; j < _this.oBtns.length ; j++) {
//                 _this.oBtns[j].classList.remove('active') ;
//                 _this.oPs[j].classList.remove('show') ;
//             }
//             _this.oBtns[i].classList.add('active');
//             _this.oPs[i].classList.add('show');
//         })
//     }
// }



Tab.prototype.init = function() {
    for(let i = 0 ; i < this.oBtns.length ; i++) {
        this.oBtns[i].addEventListener(this.type , function() {    // 事件处理函数会导致this指向发生改变
            for(let j = 0 ; j < this.oBtns.length ; j++) {
                this.oBtns[j].classList.remove('active') ;
                this.oPs[j].classList.remove('show') ;
            }
            this.oBtns[i].classList.add('active');
            this.oPs[i].classList.add('show');
        }.bind(this))    // 通过bind把事件处理函数中的this改回来
    }
}